package net.takela.dict.service;



import net.takela.dict.model.SysConf;

import java.util.List;
import java.util.Map;

/**
 *
 * @author baboy
 * @since 1.0.0 07/12/2016
 */
public interface SysConfService {
    /**
     * @param cacheExpireTimeInSeconds 缓存超时时间，单位：秒，小于0意味着 不设置超时时间，永远有效。
     */
    void setCacheExpireTimeInSeconds(Integer cacheExpireTimeInSeconds);

    /**
     * 
     * @param conf conf
     * @return result
     */
    Integer add(SysConf conf);

    /**
     * 
     * @param id id
     * @return result
     */
    boolean remove(Integer id);

    /**
     * 
     * @param conf conf
     * @return result
     */
    boolean update(SysConf conf);

    /**
     * 
     * @return result
     */
    List<SysConf> getAllConfs();

    /**
     * 
     * @param type type
     * @return result
     */
    List<SysConf> getAllConfs(String type);

    /**
     * 
     * @param id id
     * @return result
     */
    SysConf get(Integer id);

    /**
     * 
     * @param alias alias
     * @return result
     */
    SysConf getByKey(String alias);

    /**
     * 
     * @param alias alias
     * @return result
     */
    Object getValue(String alias);

    /**
     * 
     * @param alias alias
     * @return result
     */
    Map getMapValue(String alias);

    /**
     * 
     * @param alias alias
     * @return result
     */
    List getListValue(String alias);

    /**
     * 
     * @param alias alias
     * @return result
     */
    Long getLongValue(String alias);;

    /**
     * 
     * @param alias alias
     * @return result
     */
    Integer getIntegerValue(String alias);

    /**
     * 
     * @param alias alias
     * @return result
     */
    Float getFloatValue(String alias);

}
